Save state variables for starting a new simulation from the current condition
to do
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(DateTime), | optional | :: | time |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
character(len=300), | public | :: | file | ||||
character(len=26), | public | :: | prefix |
SUBROUTINE SaveHotStart & ! (time) IMPLICIT NONE TYPE(DateTime), OPTIONAL :: time CHARACTER (LEN = 26) :: prefix CHARACTER (LEN = 300) :: file !-------------------------end of declarations---------------------------------- IF (PRESENT(time)) THEN prefix = time prefix = prefix (1:19) // '_' prefix (14:14) = '-' prefix (17:17) = '-' ELSE prefix = ' ' END IF !snow IF ( dtSnow > 0 ) THEN !swe file = pathHotstart (1:LEN_TRIM (pathHotstart)) // & prefix (1:LEN_TRIM(prefix)) // 'swe' CALL ExportGrid (layer = swe, fileName = file, & fileFormat = ESRI_BINARY) !water in snow file = pathHotstart (1:LEN_TRIM (pathHotstart)) // & prefix (1:LEN_TRIM(prefix)) // 'water-snow' CALL ExportGrid (layer = waterInSnow, fileName = file, & fileFormat = ESRI_BINARY) END IF !glaciers IF ( dtIce > 0 ) THEN !ice water equivalent file = pathHotstart (1:LEN_TRIM (pathHotstart)) // & prefix (1:LEN_TRIM(prefix)) // 'icewe' CALL ExportGrid (layer = icewe, fileName = file, & fileFormat = ESRI_BINARY) !water in ice file = pathHotstart (1:LEN_TRIM (pathHotstart)) // & prefix (1:LEN_TRIM(prefix)) // 'water-ice' CALL ExportGrid (layer = waterInIce, fileName = file, & fileFormat = ESRI_BINARY) END IF !soil balance IF ( dtSoilBalance > 0 ) THEN !soil saturation root zone file = pathHotstart (1:LEN_TRIM (pathHotstart)) // & prefix (1:LEN_TRIM(prefix)) // 'sat-rz' CALL ExportGrid (layer = soilSatRZ, fileName = file, & fileFormat = ESRI_BINARY) !soil saturation transmission zone file = pathHotstart (1:LEN_TRIM (pathHotstart)) // & prefix (1:LEN_TRIM(prefix)) // 'sat-tz' CALL ExportGrid (layer = soilSatTZ, fileName = file, & fileFormat = ESRI_BINARY) !precipitation status file = pathHotstart (1:LEN_TRIM (pathHotstart)) // & prefix (1:LEN_TRIM(prefix)) // 'rainflag' CALL ExportGrid (layer = rainFlag, fileName = file, & fileFormat = ESRI_BINARY) !interstorm duration file = pathHotstart (1:LEN_TRIM (pathHotstart)) // & prefix (1:LEN_TRIM(prefix)) // 'interstorm' CALL ExportGrid (layer = interstormDuration, fileName = file, & fileFormat = ESRI_BINARY) IF ( infiltrationModel == SCS_CN ) THEN !soil retention file = pathHotstart (1:LEN_TRIM (pathHotstart)) // & prefix (1:LEN_TRIM(prefix)) // 'seff' CALL ExportGrid (layer = sEff, fileName = file, & fileFormat = ESRI_BINARY) !cumulative precipitation file = pathHotstart (1:LEN_TRIM (pathHotstart)) // & prefix (1:LEN_TRIM(prefix)) // 'raincum' CALL ExportGrid (layer = raincum, fileName = file, & fileFormat = ESRI_BINARY) END IF IF ( infiltrationModel == PHILIPEQ .OR. & infiltrationModel == GREEN_AMPT ) THEN !cumulative infiltration file = pathHotstart (1:LEN_TRIM (pathHotstart)) // & prefix (1:LEN_TRIM(prefix)) // 'cuminf' CALL ExportGrid (layer = cuminf, fileName = file, & fileFormat = ESRI_BINARY) END IF END IF ! discharge routing IF ( dtDischargeRouting > 0 ) THEN !Qin file = pathHotstart (1:LEN_TRIM (pathHotstart)) // & prefix (1:LEN_TRIM(prefix)) // 'Qin' CALL ExportGrid (layer = Qin, fileName = file, & fileFormat = ESRI_BINARY) !Qout file = pathHotstart (1:LEN_TRIM (pathHotstart)) // & prefix (1:LEN_TRIM(prefix)) // 'Qout' CALL ExportGrid (layer = Qout, fileName = file, & fileFormat = ESRI_BINARY) !Qlat file = pathHotstart (1:LEN_TRIM (pathHotstart)) // & prefix (1:LEN_TRIM(prefix)) // 'Qlat' CALL ExportGrid (layer = Plat, fileName = file, & fileFormat = ESRI_BINARY) ! diversions IF ( dtDiversion > 0 ) THEN IF ( PRESENT (time) ) THEN CALL DiversionSaveStatus ( pathHotstart, time ) ELSE CALL DiversionSaveStatus ( pathHotstart ) END IF END IF ! reservoirs IF ( dtReservoir > 0 ) THEN IF ( PRESENT (time) ) THEN CALL ReservoirSaveStatus ( pathHotstart, time ) ELSE CALL ReservoirSaveStatus ( pathHotstart ) END IF END IF END IF ! !Falda !IF (dtGroundwater > 0) THEN ! DO I=1,AltezzaPiezometrica%NumeroStrati ! ! CALL write_raster_bin(path_hotstart(1:LEN_TRIM(path_hotstart))// & ! pref_s(1:LEN_TRIM(pref_s))//'strato'//CHAR(64+I), & ! matrice_real=AltezzaPiezometrica%piezometria(I)) ! ! IF (interazione_falda_fiume ) THEN ! ! CALL write_raster_bin(path_hotstart(1:LEN_TRIM(path_hotstart))// & ! pref_s(1:LEN_TRIM(pref_s))//'baseflow_falda', & ! matrice_real=BaseFlow_falda) ! ! CALL write_raster_bin(path_hotstart(1:LEN_TRIM(path_hotstart))// & ! pref_s(1:LEN_TRIM(pref_s))//'ricarica_falda', & ! matrice_real=ricarica_falda_fiume) ! ! END IF ! ENDDO !END IF !sediment !IF (dtCalcSediment > 0) THEN ! CALL write_raster_bin(path_hotstart(1:LEN_TRIM(path_hotstart))// & ! pref_s(1:LEN_TRIM(pref_s))//'deltaSed',matrice_real=deltaSed) !END IF ! !IF (dtCalcSedimentRouting > 0) THEN ! !!to do ! !END IF END SUBROUTINE SaveHotStart